using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AdventureScene")]
	public class AdventureScene : PegasusScene
	{
		public enum TransitionDirection
		{
			X,
			Y,
			Z,
			NX,
			NY,
			NZ
		}

		[Attribute38("AdventureScene.AdventureModeMusic")]
		public class AdventureModeMusic : MonoClass
		{
			public AdventureSubScenes m_subsceneId => method_2<AdventureSubScenes>("m_subsceneId");

			public AdventureDbId m_adventureId => method_2<AdventureDbId>("m_adventureId");

			public MusicPlaylistType m_playlist => method_2<MusicPlaylistType>("m_playlist");

			public AdventureModeMusic(IntPtr address, string className)
				: base(address, className)
			{
			}

			public AdventureModeMusic(IntPtr address)
				: this(address, "AdventureModeMusic")
			{
			}
		}

		[Attribute38("AdventureScene.AdventureSubSceneDef")]
		public class AdventureSubSceneDef : MonoClass
		{
			public AdventureSubScenes m_SubScene => method_2<AdventureSubScenes>("m_SubScene");

			public AdventureSubSceneDef(IntPtr address, string className)
				: base(address, className)
			{
			}

			public AdventureSubSceneDef(IntPtr address)
				: this(address, "AdventureSubSceneDef")
			{
			}
		}

		public GameObject m_transitionClickBlocker => method_3<GameObject>("m_transitionClickBlocker");

		public Vector3 m_SubScenePosition => method_2<Vector3>("m_SubScenePosition");

		public float m_DefaultTransitionAnimationTime => method_2<float>("m_DefaultTransitionAnimationTime");

		public iTween.EaseType m_TransitionEaseType => method_2<iTween.EaseType>("m_TransitionEaseType");

		public TransitionDirection m_TransitionDirection => method_2<TransitionDirection>("m_TransitionDirection");

		public string m_SlideInSound => method_4("m_SlideInSound");

		public string m_SlideOutSound => method_4("m_SlideOutSound");

		public List<AdventureSubSceneDef> m_SubSceneDefs => method_3<Class271<AdventureSubSceneDef>>("m_SubSceneDefs")?.method_25();

		public List<AdventureModeMusic> m_AdventureModeMusic => method_3<Class271<AdventureModeMusic>>("m_AdventureModeMusic")?.method_25();

		public GameObject m_TransitionOutSubScene => method_3<GameObject>("m_TransitionOutSubScene");

		public GameObject m_CurrentSubScene => method_3<GameObject>("m_CurrentSubScene");

		public bool m_ReverseTransition => method_2<bool>("m_ReverseTransition");

		public int m_StartupAssetLoads => method_2<int>("m_StartupAssetLoads");

		public int m_SubScenesLoaded => method_2<int>("m_SubScenesLoaded");

		public bool m_MusicStopped => method_2<bool>("m_MusicStopped");

		public bool m_Unloading => method_2<bool>("m_Unloading");

		public static AdventureSubScenes s_StartMode => MonoClass.smethod_6<AdventureSubScenes>(TritonHs.MainAssemblyPath, "", "AdventureScene", "s_StartMode");

		public bool IsDevMode => method_11<bool>("get_IsDevMode", Array.Empty<object>());

		public int DevModeSetting => method_11<int>("get_DevModeSetting", Array.Empty<object>());

		public AdventureScene(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AdventureScene(IntPtr address)
			: this(address, "AdventureScene")
		{
		}

		public static AdventureScene Get()
		{
			return MonoClass.smethod_15<AdventureScene>(TritonHs.MainAssemblyPath, "", "AdventureScene", "Get", Array.Empty<object>());
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Update()
		{
			method_8("Update");
		}

		public new bool IsUnloading()
		{
			return method_11<bool>("IsUnloading", Array.Empty<object>());
		}

		public new void Unload()
		{
			method_8("Unload");
		}

		public bool IsInitialScreen()
		{
			return method_11<bool>("IsInitialScreen", Array.Empty<object>());
		}

		public AdventureDef GetAdventureDef(AdventureDbId advId)
		{
			return method_14<AdventureDef>("GetAdventureDef", new object[1] { advId });
		}

		public List<AdventureDef> GetSortedAdventureDefs()
		{
			return method_14<Class271<AdventureDef>>("GetSortedAdventureDefs", Array.Empty<object>())?.method_25();
		}

		public AdventureWingDef GetWingDef(WingDbId wingId)
		{
			return method_14<AdventureWingDef>("GetWingDef", new object[1] { wingId });
		}

		public bool IsAdventureEventActive(AdventureDbId advId)
		{
			return method_11<bool>("IsAdventureEventActive", new object[1] { advId });
		}

		public void InitializeAllDefs()
		{
			method_8("InitializeAllDefs");
		}

		public void OnKTQuoteLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnKTQuoteLoaded", assetRef, go, callbackData);
		}

		public void UpdateAdventureModeMusic()
		{
			method_8("UpdateAdventureModeMusic");
		}

		public void OnStartupAssetLoaded()
		{
			method_8("OnStartupAssetLoaded");
		}

		public void LoadSubScene(AdventureSubScenes subscene)
		{
			method_9("LoadSubScene", new Class276.Enum20[1] { Class276.Enum20.ValueType }, subscene);
		}

		public void OnSubSceneChange(AdventureSubScenes newscene, bool forward)
		{
			method_8("OnSubSceneChange", newscene, forward);
		}

		public Vector3 GetMoveDirection()
		{
			return method_11<Vector3>("GetMoveDirection", Array.Empty<object>());
		}

		public void OnFirstSubSceneLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnFirstSubSceneLoaded", assetRef, go, callbackData);
		}

		public void OnSubSceneLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnSubSceneLoaded", assetRef, go, callbackData);
		}

		public void DoSubSceneTransition(AdventureSubScene subscene)
		{
			method_8("DoSubSceneTransition", subscene);
		}

		public void DestroyTransitioningSubScene(GameObject destroysubscene)
		{
			method_8("DestroyTransitioningSubScene", destroysubscene);
		}

		public void CompleteTransition()
		{
			method_8("CompleteTransition");
		}

		public void OnSelectedModeChanged(AdventureDbId adventureId, AdventureModeDbId modeId)
		{
			method_8("OnSelectedModeChanged", adventureId, modeId);
		}

		public void OnSelectedModeChanged_CreateKTIntroConversation()
		{
			method_8("OnSelectedModeChanged_CreateKTIntroConversation");
		}

		public void OnAdventureModeChanged(AdventureDbId adventureId, AdventureModeDbId modeId)
		{
			method_8("OnAdventureModeChanged", adventureId, modeId);
		}

		public void ShowHeroicWarning()
		{
			method_8("ShowHeroicWarning");
		}

		public void ShowExpertAIUnlockTip()
		{
			method_8("ShowExpertAIUnlockTip");
		}

		public void EnableTransitionBlocker(bool block)
		{
			method_8("EnableTransitionBlocker", block);
		}

		public void NotifyAchieveManagerOfAdventureSceneLoaded()
		{
			method_8("NotifyAchieveManagerOfAdventureSceneLoaded");
		}
	}
}
